package com.ei.itop.stat.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ei.itop.common.bean.OpInfo;
import com.ei.itop.incidentmgnt.bean.QCIncident;
import com.ei.itop.stat.bean.IncidentAnalysisReport;
import com.ei.itop.stat.bean.IncidentReport;
import com.ei.itop.stat.bean.IncidentStateReport;
import com.ei.itop.stat.bean.StateCount;

public interface ReportService {

	/**
	 * 查询报表导出的事件
	 * @param qi
	 * @param i
	 * @param j
	 * @param oi
	 * @return
	 */
	public List<IncidentReport> MBLQueryIncident4Report(QCIncident qi, long startIndex, int pageSize, OpInfo oi,String locale) throws Exception;
	/**
	 * 查询周汇总报表数据
	 * @param adviserId
	 * @param expStartDate
	 * @param expEndDate
	 * @return
	 */
	public List<IncidentStateReport> MBLQueryIncidentSumReport(String adviserId, Date expStartDate, Date expEndDate) throws Exception;
	
	/**
	 * 按类型分组查询汇总事件数量
	 * @param custId
	 * @param expStartDate
	 * @param expEndDate
	 * @return
	 */
	public List<IncidentAnalysisReport> MBLQueryIncidentAnalysisGroupByType(long custId, Date expStartDate,
			Date expEndDate) throws Exception;
	
	/**
	 * 分组查询解决状态数量
	 * @param custId
	 * @param expStartDate
	 * @param expEndDate
	 * @return
	 * @throws Exception
	 */
	public Map<Integer,Integer> MBLQueryIncidentSolveStateCount(long custId, Date expStartDate,
			Date expEndDate) throws Exception;
	
	/**
	 * 分组查询满意度数量
	 * @param custId
	 * @param expStartDate
	 * @param expEndDate
	 * @return
	 * @throws Exception
	 */
	public Map<Integer,Integer> MBLQueryIncidentSatisfyStateCount(long custId, Date expStartDate,
			Date expEndDate) throws Exception;
	
	
}
